In the course of designing a communications or data network, it is advantageous to be able to test components of the network without having to physically build the entire network in order to conduct such tests. For example, a back office system for a network may have been implemented on a relatively small network, e.g. having tens or a few hundreds of nodes. It would be desirable to test the scalability of the back office system to operate on a much larger network, without first incurring the cost to build such a network.
One example of an environment in which such a capability would be useful is an Automated Metering Infrastructure (AMI). These types of systems are implemented with wired or wireless communication networks that enable water, gas, and electric utilities to remotely access consumption information, without requiring personnel in the field to record meter readings. As utilities begin a full-scale roll out of AMI networks, they need to assess the ability of back office systems to effectively communicate with an increasing number of utility meters. For example, a large utility may have over 100 million meters deployed to customers. Each meter constitutes a node in the AMI network. Before expending the costs to replace or re-configure all of these meters to communicate over the AMI network, it would be useful to determine whether back office systems and software impose any constraints on the scalability of the network.
One possible way to test the ability to effectively communicate with a number of nodes is to implement multiple virtual nodes on a computer by sharing the resources of the computer across multiple environments, known as virtualization. One example of a program that supports virtualization is VMware®.
Virtualization could permit a network designer to reduce capital costs by requiring less hardware to test communications with multiple nodes than is required by physically constructing a network with such nodes. Essentially, each node is implemented as a virtual machine, and the back office system can separately communicate with each such virtual machine, to simulate communications with multiple nodes over a network.
Despite the possibility of implementing multiple virtual machines on a single computer using virtualization, there are significant limitations to using this technology to test the ability to communicate with a large number of network nodes. Specifically, each virtual machine is assigned a network address, e.g. an Internet Protocol (IP) address. One possible implementation of virtual machines to simulate network nodes on a computer running a Linux operating system can be configured with a maximum of 4096 network addresses. Accordingly, a computer running a Linux operating system would be limited to a maximum configuration of 4096 virtual nodes.
Likewise, another possible implementation of virtual machines to simulate network nodes on a computer running a Windows® operating system could be configured with a maximum of 256 network addresses. Accordingly, a computer running a Windows operating system would be limited to a maximum configuration of 256 virtual nodes. Since a large network, such as a utility network, could have millions or even hundreds of millions of nodes, the limited capacity of virtualization does not support an effective test of the scalability of the back office system.
Accordingly, it would be highly desirable to conduct a logical test for functional performance in a network with a large number of network nodes with minimal time and resources, as compared to simulation methods that could be developed with virtual machines, to set up and test a one-to-many relationship between a source (e.g. a back office system) and nodes on a network.